package com.sykj.why.mongo.service;

import com.sykj.why.mongo.document.entity.SuccessorT;
import com.sykj.why.mongo.dto.PageDTO;
import com.sykj.why.mongo.vo.entity.SuccessorTVo;
import com.sykj.why.util.Page;

import java.util.List;

/**
 * @author Eleven
 * @date 2019/6/12
 * @desc 传承人业务访问层
 */

public interface SuccessorTService extends BasicService<SuccessorT> {

    /**
     * 添加传承人
     * @param successorT
     */
    void saveSuccessor(SuccessorT successorT);

    /**
     * 删除传承人
     * @param id
     */
    void removeSuccessor(String id);

    /**
     * 修改传承人
     * @param successorT
     */
    void updateSuccessor(SuccessorT successorT);

    /**
     * 启用/禁用传承人
     * @param id
     * @param flag
     */
    void disableOrEnable(String id,boolean flag);

    /**
     * 通过id查询传承人
     * @param id
     * @return
     */
    SuccessorT findById(String id);

    /**
     * 通过id查询传承人
     * @param id
     * @return
     */
    SuccessorT findBySuccessorId(String id);

    /**
     * 查询所有传承人
     * @return
     */
    List<SuccessorT> findAll();

    /**
     * 通过用户Id查询传承人
     * @param userId
     * @return
     */
    SuccessorTVo findByUser(String userId);

    /**
     * 分页查询传承人
     * @param pageDTO
     * @return
     */
    Page findByPage(PageDTO pageDTO);

    /**
     * 查询待审核传承人
     *
     * @param pageDTO
     * @return
     */
    Page findCheckByPage(PageDTO pageDTO);

    /**
     * 传承人审核
     *
     * @param id
     * @param flag
     * @param checkInfo
     */
    void check(String id, boolean flag, String checkInfo);

}
